package com.xuhao.examai.scoring.application.services;

import com.xuhao.examai.scoring.domain.models.AnswerRecord;
import com.xuhao.examai.scoring.domain.models.ExamRecord;
import com.xuhao.examai.common.PageResult;
import java.util.List;

public interface ScoringService {

	/**
	 * 评分单个答案
	 */
	AnswerRecord scoreAnswer(Long examRecordId, Long questionId, String studentAnswer);

	/**
	 * 批量评分答案
	 */
	List<AnswerRecord> batchScoreAnswers(Long examRecordId, List<AnswerRecord> answerRecords);

	/**
	 * 完成考试评分
	 */
	ExamRecord completeExamScoring(Long examRecordId);

	/**
	 * 获取考试记录
	 */
	ExamRecord getExamRecord(Long examRecordId);

	/**
	 * 获取答案记录列表
	 */
	List<AnswerRecord> getAnswerRecords(Long examRecordId);

	/**
	 * 获取学生考试记录列表
	 */
	List<ExamRecord> getStudentExamRecords(Long studentId);

	/**
	 * 分页查询考试记录
	 */
	PageResult<ExamRecord> getExamRecordsByPage(Integer current, Integer size, Long examId, Long studentId,
			String status);

	/**
	 * 获取考试统计信息
	 */
	ExamStatistics getExamStatistics(Long examId);

	/**
	 * 重新评分
	 */
	ExamRecord rescoreExam(Long examRecordId);

	/**
	 * 导出成绩报告
	 */
	byte[] exportScoreReport(Long examRecordId);
}